Skip to content

feat(LAB-02): add laboratory metadata model and tests - #43

Merged
owlCoder merged 3 commits into
mainfrom
feature/LAB-02-lab-metadata
Nov 4, 2026
Merged

owlCoder merged 3 commits into
mainfrom
feature/LAB-02-lab-metadata

Conversation

@dragananikic

@dragananikic dragananikic commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Component and requirement IDs

  • Component: Platform.LabMetadata
  • Implemented requirement: LAB-02 (laboratory metadata)
  • Dependency: LAB-01 (stable laboratory identity, owned by Team 14)
  • Team: 20
  • Author(s): Dragana Nikić

Changes

  • Implemented the LaboratoryMetadata model containing LaboratoryId, objective, difficulty, type, and tags.
  • Uses LaboratoryId (Guid) as a reference to the laboratory identity provided by LAB-01.
  • Does not implement or replace the LAB-01 laboratory identity.
  • Added LaboratoryDifficulty and LaboratoryType enums.
  • Implemented validation of required fields and allowed enum values.
  • Implemented tag normalization, including trimming, lowercase conversion, and removal of duplicates and empty tags.
  • Updated the Platform.LabMetadata.Tests project with tests for metadata validation.
  • Registered the metadata and test projects in SecurityLab.slnx.

Verification

  • Solution build completed successfully with 0 errors.
  • All 7 Platform.LabMetadata.Tests unit tests passed.
  • GitHub CI checks passed for both backend and frontend.

Architecture and data flow

  • LAB-02 metadata is implemented in a separate C# class library.
  • Laboratory identity belongs to LAB-01 (Team 14).
  • LaboratoryId is used only as a reference to that identity.
  • No database or API integration is included in this change.

Security checks and negative tests

  • Invalid difficulty and laboratory type values are rejected.
  • Empty laboratory IDs and required metadata fields are rejected.
  • Null tag collections are rejected.

Dependencies

  • Targets .NET 10.
  • Test project references Platform.LabMetadata and uses NUnit.
  • Database, repository, and API integration are outside the scope of this change.

@dragananikic
dragananikic requested review from Bogdan00004 and owlCoder and removed request for Bogdan00004 November 3, 2026 03:31

owlCoder commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Ponovni pregled (03.11): LAB-02 pripada timu 20, dok je LAB-01 prijavljen timu 14. PR u opisu navodi i LAB-01 (stabilan ID), a kod sadrži Laboratory.Id. Molimo precizno razgraničiti: LAB-01 kao posebnu celinu ne implementirati u ovom PR-u, već koristiti/dogovoriti ugovor sa timom 14; dokumentovati da je ID samo zavisnost ako je to slučaj. Uz to su prisutni konflikti sa novim main, pa ih treba rešiti i ponoviti CI. Do tada nema merge-a.

owlCoder commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Ponovni pregled 03.11. uveče: LAB-01 je dodeljen timu 14 i njegov PR #47 je sada merge-ovan; LAB-02 pripada timu 20. Ovaj PR #43 i dalje deklarativno obuhvata LAB-01 i implementira sopstveni Laboratory.Id. Potrebno je uskladiti model sa interfejsom/identitetom iz #47 i ograničiti izmenu na LAB-02 (bez paralelnog preuzimanja LAB-01), rešiti merge konflikt i ponoviti CI. Do tada nema merge-a.

owlCoder commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Pregled 04.11: izmenjeni PR sada pravilno ograničava implementaciju na LAB-02 (tim 20), dok je LAB-01 identitet tima 14 samo zavisnost. CI na commitu 90a3fd1 je zelen. Pokrenut je merge zahtev, ali GitHub je vratio timeout, a naknadni pokušaj 'Merge already in progress'; PR je i dalje otvoren, pa merge nije potvrđen. Molimo proveriti GitHub merge job/status pre novog pokušaja; ne zatvaramo PR dok stanje nije razjašnjeno.

@owlCoder
owlCoder merged commit 9518375 into main Nov 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants